Makers, distributors, sellers, and buyers of commercial goods often rely on bar codes or similar automatic identification techniques to identify products. In general, automatic identification techniques provide a way to quickly identify products, items, records, or other entities marked with tags or other identifying indicia using an input device (e.g., a bar code scanner). For example, the use of bar codes and other automatic identification techniques facilitates data entry. In such cases, an operator can use a scanning device to scan bar code symbols on products or product packaging into a computer system that recognizes each bar code as being linked to a specified product.
In some industries, identification tags (e.g., printed bar codes) and their associated structures are standardized to include specific information and formatting. For example, the health industry has developed a specialized Health Industry Bar Code (HIBC) standard. Details regarding health industry bar code standards can be found in an American National Standards Institute document entitled “The Health Industry Bar Code (HIBC) Supplier Labeling Standard” (1997).
Most known bar code standards are either location-based or code-based. With location-based bar codes, the order of the information presented in the bar code plays a role in how the bar code is interpreted. The data contained in the bar code and its sequence within the bar code are predetermined. With code-based bar codes, the order and presence (or absence) of the information presented in the bar code does not matter. In this type of design, special codes precede each data element to indicate the type, meaning, and format of data to follow. An example of a code-based bar code scheme is UCC/EAN (see, e.g., http://www.uc-council.org/ean_ucc_system/index.html).
With UCC/EAN, the bar code is divided into segments. Each segment is either fixed in length or variable in length. Segments with variable length either end with a separator or are, alternatively, located at the end of a data sequence.
Once scanned or otherwise inputted into temporary electronic storage, bar codes are typically processed or stored by a computer. To ensure that the data contained in the bar code is meaningful, the computer typically has some way of recognizing each bar code it receives as input. Enabling such recognition usually involves a user performing systematic data entry and data identification for a series of items read by the device. In most cases, a user conducts an initial scan of raw bar code data into the application and then provides matching product information for the raw bar code data. This type of solution is inflexible, as it does not allow for customization to handle new standards and requires excess data entry. Alternatively, a user may utilize a hard code system designed to interpret a specific bar code symbology. This solution, too, is inflexible, requiring separate solutions for each symbology as well as an inability to represent custom schemes or make changes in a runtime environment.
Bar code information can be used in many practical applications. Cycle counting is one example of a practical use for bar code data. In some industries, customers or purchasers of goods may store inventory owned by the manufacturer. This type of inventory is sometimes referred to as a “consignment inventory.” Manufacturers typically replenish consignment inventories on an as-needed basis. One way to track consignment inventories involves the use of cycle counts.
Cycle counting typically involves performing a series of steps that result in substantial administrative effort. In a typical cycle counting process, a user (e.g., sales representative, service engineer, or other operator) performs cycle counting on a customer's premises. To begin the process, an inventory manager creates lists of expected inventory on paper or using a word processing application and then mails, faxes, or otherwise transmits the lists to a user. The user counts the physical inventory on hand and manually updates the list with additions, corrections, and deletions. He or she manually identifies expired products and products nearing their expiration dates. The user then faxes the updated list back to the inventory manager who updates an electronic record. The revised inventory may be used to replenish inventory locations and generate invoices.
This technique for cycle counting often results in outdated and/or otherwise inaccurate inventory information. In the case of negotiated pricing benefits contingent on inventory stocking or usage levels, the process may also result in pricing benefits being delivered to customers without current inventory visibility. In addition, the manual data entry typically resorted to with this technique can be tedious, inaccurate, and inefficient. This is especially true in the case where a given product has multiple assets that each require unique identification codes. Alternatively, bar code information may be used in physical inventory counting, patient information, or any other application benefiting from either rapid data entry or increased data accuracy.